package com.tro.generator.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.tro.generator.entity.GenDicConfig;
import com.tro.generator.entity.GenTable;
import com.tro.generator.entity.GenTableCol;
import com.tro.generator.entity.GenTableColExample;
import com.tro.generator.entity.GenTableColExt;
import com.tro.generator.entity.GenTableColVO;
import com.tro.generator.entity.GenTableExample;

import freemarker.template.TemplateException;

public interface GeneratorService {
	// 同步数据库表
	void refTables();

	// 删除生成表
	void deleteGenTable(String id,String path);
	
	void copyGenTable(String id);
	// 表查询

	//
	List<GenTable> selectByExampleGenTable(GenTableExample example);
	
	int countByExampleGenTable(GenTableExample example);
	//列合集
	List<GenTableCol> selectByExampleGenTableCol(GenTableColExample example);
	
	//单个查询
	GenTable selectByPrimaryKey(String id);
	
	GenTableCol selectByPrimaryKeyCol(String id);
	
	GenDicConfig selectByKeyDic(String id);
	//生成代码
	void generatorSource(GenTable genTable,List<GenTableCol> col,List<GenDicConfig> dics,List<GenTableColExt> extCols,String savePath) throws TemplateException, IOException;
	
	void insertSql(String sql);
    List<Map<String,Object>> querySql(String sql);
    void delSql(String sql);
    void updateSql(String sql);
    Integer countSql(String sql);
    
    List<GenTableColVO> getCols(String tableId);
}
